//app.js
App({
  onLaunch: function (e) { 
      var userInfo;
      var ttbtSession;
      if (userInfo = wx.getStorageSync('userInfo')) {
          this.globalData.userInfo = userInfo;
		  this.globalData.userId = wx.getStorageSync('userId')
      }
      if (ttbtSession = wx.getStorageSync('ttbtSession')){
          this.globalData.ttbtSession = ttbtSession
      }
	  wx.setStorageSync("userId", "2")
  },
  //第二步
  login:function(){
      var that = this;
      console.log("Login====用户登录====")
      wx.login({
          success: function (res) {
              console.log("进入登录处理code")
              // 发送 res.code 到后台换取 userId, ttbtSession, unionId
              if (res.code) {
                  console.log(res.code)
                  that.sendCode(res.code);
                  console.log("用户登录成功")
              } else {
                  console.log('获取用户登录态失败！' + res.errMsg)
              }
          },
          fail: function (res) {
              console.log('login fail: ' + res.errMsg);
          }
      })
  },
  toLoginHtml:function(){ //跳转到登录页面
      wx.redirectTo({
          //跳转页面的路径，可带参数 ？隔开，不同参数用 & 分隔；相对路径，不需要.wxml后缀
          url: '../../login/login',
          success: function () { },        //成功后的回调；
          fail: function () { },         //失败后的回调；
          complete: function () { }      //结束后的回调(成功，失败都会执行)
      })
  },
  //第二步
  // 向服务器发送微信登录返回的code,获取登录态
  sendCode: function (code) {
      var that = this;
	  var clientUserInfo = that.globalData.userInfo //登录后客户端获取用户基本信息
	  console.log(clientUserInfo)
      var data = {
		  wxNickname: clientUserInfo.nickName,
		  wxGender: clientUserInfo.gender,
		  wxAvatarUrl: clientUserInfo.avatarUrl,
		  wxProvince: clientUserInfo.province,
		  wxCity: clientUserInfo.city
      }
	  that.requestLoading(getApp().globalData.https + "weixinResource/openId/" + code,  //将调用登录接口
		  "post", data, "正在登录中...", function (res) {
              //获取到用户凭证 存儲 3rd_session 
			  var serviceUserInfo = res.data //获取服务端返回的登录信息
			  console.log(serviceUserInfo);
			  if (res.code==0){ console.log("请求服务成功")
				  that.globalData.userId = serviceUserInfo.userId  
				  that.globalData.ttbtSession = serviceUserInfo.ttbtSession
				  console.log(serviceUserInfo.ttbtSession)
				  wx.setStorageSync("ttbtSession", serviceUserInfo.ttbtSession)
				  wx.setStorageSync("userId", serviceUserInfo.userId)
			  }
			  console.log(clientUserInfo) //调用登录接口返回登录结果
              //var json = JSON.parse(res.data.Data)
			  
              //授权成功后，跳转进入小程序
              var backType = that.globalData.backType 
              console.log(backType)
              var urls = "";
              urls = backType.replace(/pages/, ".."); //将获取的绝对路径替换为相对路径
              wx.switchTab({ //跳转回登录前页面
                  url: urls
              }) 

          }, function (res) {
              console.log(res)
          });

  },
  //第一步页面调用
  checkLogin: function () { //检查用户是否已登录
      wx.showLoading({
          title: "加载中..."
      })
      var  that = this;
      console.log("checkLogin====检查用户是否登录====getSessionKey")
        try {
            var ttbtSession = wx.getStorageSync('ttbtSession');
            console.log(ttbtSession)
            if (ttbtSession) {
              // 检查 session_key 是否过期
              wx.checkSession({
                  // session_key 有效(未过期)
                  success: function () {
                      console.log("微信登录态有效")
                      // 业务逻辑处理
                      wx.hideLoading();
                  },
                  // session_key 过期
                  fail: function () {
                      console.log("微信登录态失效")
                      // session_key过期，重新登录
                      that.toLoginHtml();
                      //that.login();
                  }
              });
            } else {
                // 无skey，作为首次登录
                //弹出提示未登录请登录。。。。TODO。。点击调用授权获取用户信息，授权后进行下登录边操作TODO。。。
                console.log("暂无用户登录态")
                that.toLoginHtml();
                //that.login(); //不存在登录态，重新登录
            }
        } catch (e) {

        }
  },
 
//调用方法request ，，无loading加载框提示
	request: function (url, method, params, success, fail) {
        this.requestLoading(url,method, params, "", success, fail)
  },

//调用方法requestLoading ，，会出现loading加载框提示
// 网络请求
// url:网络请求的url
// params:请求参数
// message:进度提示信息
// success:成功的回调函数
// fail：失败的回调
requestLoading:function(url,method, params, message, success, fail) {
        wx.getNetworkType({
            success: function (res) {
                // 返回值
                var networkType = res.networkType
                if (networkType === "none") {
                    wx.showLoading({
                        title: "网络连接失败"
                    })
                    setTimeout(function () {
                        wx.hideLoading()
                    }, 2000)
                } else {
                    wx.showNavigationBarLoading()
                    if (message != "") {
                        wx.showLoading({
                            title: message,
                        })
                    }
                    wx.request({
                        url: url,
                        data: params,
                        header: {
                            'content-Type': 'application/json'
                            //'content-type': 'application/x-www-form-urlencoded'
                        },
						method: method,
                        success: function (res) {
                            //console.log(res.data)
                            wx.hideNavigationBarLoading()
                            if (message != "") {
                                wx.hideLoading()
                            }
                            if (res.statusCode == 200) {
                                if(res.code===1){
                                    wx.showLoading({
                                        title: "请求失败，返回码1" 
                                    })
                                }
                                success(res.data)
                            } else {
                                wx.showLoading({
                                    title: "请求失败" + res.errMsg
                                })
                                setTimeout(function () {
                                    wx.hideLoading()
                                }, 2000)
                                fail()
                            }
                        },
                        fail: function (res) {
                            wx.hideNavigationBarLoading()
                            if (message != "") {
                                wx.hideLoading()
                            }
                            wx.showLoading({
                                title: "请求失败" + res.errMsg
                            })
                            setTimeout(function () {
                                wx.hideLoading()
                            }, 2000)
                            fail()
                        },
                        complete: function (res) {

                        },
                    })
                }
            }
        })

    },
    /**getUserInfos: function () { //获取用户微信基本信息
        console.log("进入getUserInfos获取用户信息")
        var that = this;
        wx.getUserInfo({
            success: function (res) {
                console.log(res)
                var userInfo = res.userInfo
                wx.setStorageSync("userInfo", userInfo)
                console.log(userInfo);
                console.log("=======================")
                //userInfoSetInSQL(userInfo) //保存处理
            },
            fail: function () {
                console.log("获取用户信息失败")
            }
        })
    },*/

/**
 * 登录页用户授权
 */
    authInfo: function (e) { //用户点击页面授权登录按钮调用
        var that = this;
        if (e.detail.userInfo) { 
			console.log("用户信息获取=" + JSON.stringify(e.detail.userInfo))
			wx.setStorageSync("userInfo", e.detail.userInfo)
			that.globalData.userInfo = e.detail.userInfo; //全局变量用户信息
            //用户按了允许授权按钮
            console.log("开始调用login登录啦！！！！")
            that.login();
            console.log("调用login登录结束！！！！")
 
        } else {
            //用户按了拒绝按钮
            wx.showModal({
                title: '警告',
                content: '您点击了拒绝授权，将无法体验我们更多功能，请授权！',
                showCancel: false,
                confirmText: '返回授权',
                success: function (res) {
                    if (res.confirm) {
                        console.log('用户点击了“返回授权”')
                    }
                }
            })
        }
    },



    globalData: {
		https:"http://192.168.1.166:8080/gox-ttbt/rest/", //接口调用地址
		//https: "http://192.168.1.166:8081/rest/", //接口调用地址
        source:"http://dd.shzstr.cn/ttbt_img/", //资源图片地址
        userInfo: null,  //用户基本信息
        ttbtSession: null, //自定义登录态
        backType:null, //登录后返回之前的页面
		userId:null  //服务端返回的唯一id
    },












    userInfoSetInSQL: function(userInfo) {
        wx.getStorage({
            key: 'third_Session',
            success: function (res) {
                wx.request({
                    url: '',
                    data: {
                        third_Session: res.data,
                        nickName: userInfo.nickName,
                        avatarUrl: userInfo.avatarUrl,
                        gender: userInfo.gender,
                        province: userInfo.province,
                        city: userInfo.city,
                        country: userInfo.country
                    },
                    success: function (res) {
                        if (逻辑成功) {
                            //SQL更新用户数据成功
                        }
                        else {
                            //SQL更新用户数据失败
                        }
                    }
                })
            }
        })
    },


  //秒 转 分秒
  s_to_hs: function (s) {
    //计算分钟
    //算法：将秒数除以60，然后下舍入，既得到分钟数
    var h;
    h = Math.floor(s / 60);
    //计算秒
    //算法：取得秒%60的余数，既得到秒数
    s = s % 60;
    //将变量转换为字符串
    h += '';
    s += '';
    //如果只有一位数，前面增加一个0
    h = (h.length == 1) ? '0' + h : h;
    s = (s.length == 1) ? '0' + s : s;
    return h + ':' + s;
  },
})


